﻿using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net.Sockets;
using System.Threading;

namespace ChatServer
{
	/// <summary>
	/// Encapsula la informacion de un cliente
	/// </summary>
	class ClientInfo
	{
		private TcpClient clientConnection;
		private BinaryWriter clientWriter;
		private BinaryReader clientReader;
		private Thread clientThread;

		/// <summary>
		/// Obtiene la connexion que representa al cliente
		/// </summary>
		public TcpClient ClientConnection { get { return clientConnection; } }

		/// <summary>
		/// Obtiene el BinaryWriter con el que se le puede escribir data al cliente
		/// </summary>
		public BinaryWriter ClientWriter { get { return clientWriter; } }

		/// <summary>
		/// Obtiene el BinaryReader con el que se puede leer data desde el cliente
		/// </summary>
		public BinaryReader ClientReader { get { return clientReader; } }

		/// <summary>
		/// Obtiene el thread de escucha de mensajes del cliente
		/// </summary>
		public Thread ClientThread { get { return clientThread; } }

		/// <summary>
		/// Inicializa una nueva instancia de la clase ClientInfo
		/// </summary>
		/// <param name="conn">La conexion con el cliente</param>
		/// <param name="writer">BinaryWriter para escribir en el stream del cliente</param>
		/// <param name="reader">BinaryWriter para leer dede el stream del cliente</param>
		/// <param name="thread">El thread de escucha de mensajes del cliente</param>
		public ClientInfo(TcpClient conn, BinaryWriter writer, BinaryReader reader, Thread thread)
		{
			this.clientConnection = conn;
			this.clientWriter = writer;
			this.clientReader = reader;
			this.clientThread = thread;
		}
	}
}
